package com.jy.wms.dao;

import com.github.pagehelper.Page;
import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName: WmsPalletSortingMapper.java
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @Author ln
 * @Date Mon Sep 25 17:10:00 CST 2017
 */
public interface WmsPalletSortingMapper extends BaseDao<WmsPalletSorting> {

    /**
     * 插入一条记录
     * @param entity 实体对象
     * @param database 数据库名称
     * @return int
     */
    public Integer baseInsert(@Param("WmsPalletSorting") WmsPalletSorting entity, @Param("database") String database);

    /**
     * 插入一条记录（匹配有值的字段）
     * @param entity 实体对象
     * @param database 数据库名称
     * @return int
     */
    public Integer baseInsertSelective(@Param("WmsPalletSorting") WmsPalletSorting entity, @Param("database") String database);

    /**
     * 删除（根据主键ID删除）
     * @param id 主键
     * @param database 数据库名称
     * @return int
     */
    public Integer baseDeleteByPrimaryKey(@Param("id") String id, @Param("database") String database);

    /**
     * 删除（根据ID 批量删除）
     * @param id 主键ID列表
     * @return int
     */
    public Integer baseDeleteBathPrimaryKeys(@Param("id") String id);

    /**
     * 修改（根据ID 批量修改码盘状态）
     * @param id 主键ID列表
     * @return int
     */
    public Integer baseUpdateBathPrimaryKeys(@Param("id") String id, @Param("mpzt") String mpzt);


    //根据id 查询kwid预期到货明细ID
    List <String> kwSelect(@Param("id") String id);

    /**
     *修改库位状态
     */
   public Integer updateku(@Param("list") List<String> list,@Param("zyzt") String zyzt);

    /**
     * 单条修改库位状态
     */
    public Integer updatedt(@Param("id") String id,@Param("zyzt") String zyzt);
    /**
     * 分页查询
     * @param entity 实体
     * @return List<WmsPalletSorting>
     */
    public List<WmsEstimatedArrivalOrder>  baseSelectPage(@Param("WmsEstimatedArrivalOrder") WmsEstimatedArrivalOrder entity);

    /**
     * 查询（根据主键ID查询）
     * @param id 主键ID
     * @param database 数据库名称
     * @return User
     */
    public WmsPalletSorting  baseSelectByPrimaryKey(@Param("id") String id, @Param("database") String database);

/**
 * 查询（根据ID 批量查询）
 * @param idList 主键ID列表
 * @param database 数据库名称
 * @return list
 */
    //public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsPalletSorting> idList, @Param("database") String database);

    /**
     * 批量更新（lj）
     * @param list 主键ID列表
     * @return int
     */
    public Integer baseUpdateByPrimaryKeySelective(@Param("list") List<WmsPalletSorting> list);

    /**
     *修改（根据主键ID修改）
     * @param entity 主键ID列表
     * @return int
     */
    public Integer baseUpdateByPrimaryKey(@Param("WmsPalletSorting") WmsPalletSorting entity);

    /**
     * 查询（根据预期通知单ID查询）
     * @param ssyqdid 预期通知单ID
     * @return  List<WmsPalletSorting>
     */
    public List<WmsPalletSorting>  baseSelectBySsyqdid(@Param("ssyqdid") String ssyqdid);

    /**
     *查询（查询lpn是否存在）
     * @param lpn lpn号
     * @return int
     */
    public Integer selectlpnBylpn(@Param("lpn") String lpn);

    /**
     * 根据勾选的码盘明细打印
     */
    List<WmsPalletSorting> baseDyid(@Param("list") List<String> list);



    /**
     * 根据单据id查询明细（根据ID 批量查询）
     * @param idList 主键ID列表
     * @param database 数据库名称
     * @return list
     */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<String> idList, @Param("database") String database);



    /**
     * 明细查询(根跟单据查询明细)
     */
    public Page<WmsPalletSorting> baseSelectMx(@Param("ssyqdid")  String ssyqdid);


    /**
     *码盘（查询预期到货通知单明细,根据明细 码盘）
     */
    public List<WmsEstimatedArrivalOrderDetailed> baseSelectMpMx(@Param("list") List<String> list);

    /**
     * 总yqsl
     */
    public List<WmsEstimatedArrivalOrderDetailed> baseSelectZyqsl(@Param("list") List<String> list);
    /**
     * zt
     */
    public List<WmsEstimatedArrivalOrder> baseSelectZt(@Param("list") List<String> list);

    /**
     * 码盘 （根据每条明细货品查询包装明细主单位）
     */
    public WmsPackingDetailed DwSelectId(@Param("id") String id);
    /**
     * 码盘 （根据预期到货id 查询该明细总数量）
     *
     */
    public List<WmsPalletSorting> YqSelectMxId(@Param("list") List<String> list);
    /**
     *查询ASN 明细id
     */
    public List<WmsPalletSorting> SelectMxId(@Param("id") String id);
    /**
     * 码盘 (批量插入)
     */
    public Integer baseInsertPlSelective(@Param("list") List<WmsPalletSorting> list);
    /**
     * 打印托盘码
     */
    public List<WmsPalletSorting> dySelecttp(@Param("list") List<String> ids);

    /**
     * 根据货主id 查询上架规则
     */

    String shelf(@Param("hzid") String hzid);

    /**
     * 根据ASN 订单明细货品id查询是否绑定库位组
     * @param hpid
     * @return
     */
    List<WmsGoodsLocation> bdGroup(@Param("hpid") String hpid,@Param("hzid") String hzid);

    /**
     * 根据asn 订单明细货品id 查询堆码
     */
    List<WmsStacking> dyStacking(@Param("hpid") String hpid,@Param("kwgd") Double kwgd);
    /**
     * 根据库位组id 查询库位
     */
    List<WmsLibraryPosition> library(@Param("kwzid") String kwzid,@Param("zyzt") String zyzt,@Param("lx") String lx,@Param("bj") String bj,@Param("hzid") String hzid);

    /**
     * 修改（根据ID 批量修改托盘打印时间）
     * @param idList 主键ID列表
     * @return int
     */
    public Integer baseUpdateTp(@Param("list") List<String> idList);
    /**
     * 批量修改实收数量_Jane
     */

    public Integer baseUpdateSssl(@Param("list") List<String> list);

}
